home *** CD-ROM | disk | FTP | other *** search
/ io Programmo 72 / IOPROG_72.ISO / tips / Un semplice server Proxy / Form1.frm (.txt) next >
Encoding:
Visual Basic Form  |  2003-07-02  |  2.8 KB  |  101 lines

  1. VERSION 5.00
  2. Object = "{248DD890-BB45-11CF-9ABC-0080C7E7B78D}#1.0#0"; "MSWINSCK.OCX"
  3. Begin VB.Form Form1 
  4.    Caption         =   "Form1"
  5.    ClientHeight    =   3195
  6.    ClientLeft      =   60
  7.    ClientTop       =   345
  8.    ClientWidth     =   4680
  9.    LinkTopic       =   "Form1"
  10.    ScaleHeight     =   3195
  11.    ScaleWidth      =   4680
  12.    StartUpPosition =   3  'Windows Default
  13.    Begin MSWinsockLib.Winsock wskweb 
  14.       Index           =   0
  15.       Left            =   1080
  16.       Top             =   120
  17.       _ExtentX        =   741
  18.       _ExtentY        =   741
  19.       _Version        =   393216
  20.    End
  21.    Begin VB.Timer Timer1 
  22.       Interval        =   1000
  23.       Left            =   1560
  24.       Top             =   120
  25.    End
  26.    Begin MSWinsockLib.Winsock wskconnect 
  27.       Index           =   0
  28.       Left            =   600
  29.       Top             =   120
  30.       _ExtentX        =   741
  31.       _ExtentY        =   741
  32.       _Version        =   393216
  33.    End
  34.    Begin MSWinsockLib.Winsock wskserver 
  35.       Left            =   120
  36.       Top             =   120
  37.       _ExtentX        =   741
  38.       _ExtentY        =   741
  39.       _Version        =   393216
  40.    End
  41. Attribute VB_Name = "Form1"
  42. Attribute VB_GlobalNameSpace = False
  43. Attribute VB_Creatable = False
  44. Attribute VB_PredeclaredId = True
  45. Attribute VB_Exposed = False
  46. Option Explicit
  47. Dim i As Integer
  48. Private Sub delay(interval As Single)
  49. Dim s As Single
  50. s = Timer
  51. Do While Timer < (s + interval)
  52.     DoEvents
  53. End Sub
  54. Private Sub parse(buffer As String, ByRef server As String, ByRef richiesta As String)
  55. On Error Resume Next
  56. Dim url As String
  57. url = Left$(buffer, InStr(buffer, "HTTP/1.1") - 2)
  58. url = Right$(url, Len(url) - 5)
  59. If InStr(url, "/") = 0 Then
  60.     server = url
  61.     richiesta = "GET /"
  62.     server = Left$(url, InStr(url, "/") - 1)
  63.     richiesta = "GET " & Right$(url, Len(url) - Len(server)) & vbCrLf
  64. End If
  65. End Sub
  66. Private Sub Form_Load()
  67. wskserver.LocalPort = 8080
  68. wskserver.Listen
  69. i = 0
  70. End Sub
  71. Private Sub wskconnect_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  72. On Error Resume Next
  73. Dim buffer As String
  74. Dim server As String
  75. Dim richiesta As String
  76. wskconnect(Index).GetData buffer
  77. parse buffer, server, richiesta
  78. Load wskweb(Index)
  79. wskweb(Index).Connect server, 80
  80. delay 1
  81. wskweb(Index).SendData richiesta
  82. End Sub
  83. Private Sub wskconnect_SendComplete(Index As Integer)
  84. wskconnect(Index).Close
  85. wskweb(Index).Close
  86. Unload wskconnect(Index)
  87. Unload wskweb(Index)
  88. End Sub
  89. Private Sub wskserver_ConnectionRequest(ByVal requestID As Long)
  90. i = i + 1
  91. Load wskconnect(i)
  92. wskconnect(i).Accept requestID
  93. delay 1
  94. End Sub
  95. Private Sub wskweb_DataArrival(Index As Integer, ByVal bytesTotal As Long)
  96. On Error Resume Next
  97. Dim risposta As String
  98. wskweb(Index).GetData risposta
  99. wskconnect(Index).SendData risposta
  100. End Sub
  101.